﻿@TestRunner.Imports


namespace @Test.Namespace
{
	
	@TestRunner.TestClassAttribute
	public partial class @Test.ClassName @TestRunner.TestBaseClass
	{

		///<summary>
		/// Create an object for use in other tests.
		///</summary>
		public @Class.FullName CreateObject()
		{
			@Class.CreateObjectConstructor
		}
		
@{

	if (Class.IsComparable)
	{ 
<text>
		/// <summary>
		/// Returns three values such that Item1 &lt; Item2 &lt; Item3 = Item 4
		/// </summary>
		/// <returns></returns>
		public System.Tuple<@Class.FullName, @Class.FullName, @Class.FullName, @Class.FullName> CreateOrderedSet()
		{
			Assert.Inconclusive("CreateOrderedSet needs to be manually implemented for @Class.SafeName.");
			return null;
            #warning CreateOrderedSet needs to be manually implemented for @Class.Name

			var low = CreateObject();
			var middle = CreateObject();
			var high = CreateObject();
			var alsoHigh = CreateObject();
			return System.Tuple.Create(low, middle, high, alsoHigh);
		}
</text>				
	}


	if (Class.IsEquatable)
	{ 
<text>
		/// <summary>
		/// Returns three values such that Item1 = Item2 != Item3
		/// </summary>
		/// <returns></returns>
		public System.Tuple<@Class.FullName, @Class.FullName, @Class.FullName> CreateEquatableSet()
		{
			Assert.Inconclusive("CreateEquatableSet needs to be manually implemented for @Class.SafeName.");
			return null;
            #warning CreateEquatableSet needs to be manually implemented for @Class.Name

			var value = CreateObject();
			var equals = CreateObject();
			var notEquals = CreateObject();
			return System.Tuple.Create(value, equals, notEquals);
		}
</text>				
	}

	if (Class.IsIEnumerable)
	{ 
<text>
		/// <summary>
		/// Returns the object populated with five unique items
		/// </summary>
		/// <returns></returns>
		public @Class.FullName CreateCollection()
		{
			Assert.Inconclusive("CreateCollection needs to be manually implemented for @Class.SafeName.");
            #warning CreateCollection needs to be manually implemented for @Class.Name

			var result = CreateObject();
			//result.Add();
			//result.Add();
			//result.Add();
			//result.Add();
			//result.Add();
			
			return result;
		}
</text>				
	}
	
}

	}
}
